let reportId, SNO;

layui.use(['table', 'jquery', 'upload'], function () {
    let table = layui.table
        , $ = layui.jquery
        , layer = layui.layer
        , upload = layui.upload
        , form = layui.form;
    //展示表格数据
    table.render({
        elem: '#paper-info'
        , toolbar: true
        , title: '论文信息表'
        , url: '/getPaper'
        , page: true
        , where: {userName: sno, state: "开题报告", type: 1}
        , even: true
        , cols: [[ //标题栏
            {field: 'bh', title: '编号', sort: true, hide: true}
            , {field: 'title', title: '课题名称'}
            , {field: 'sname', title: '学生姓名'}
            , {field: 'sno', title: '学生学号'}

            , {
                field: 'tno1', title: '教师姓名', templet: function (res) {
                    return res.title1.tName;
                }
            }
            , {field: 'tno', title: '教师工号'}
            , {field: 'state', title: '论文阶段'}
            , {
                field: 'state1', title: '审核状态', align: 'center', templet: function (res) {
                    if (res.report === null) {
                        return '<span style="color: red">待提交</span>'
                    } else {
                        if (res.report.state === '审核中') {
                            return '<span style="color: orange">审核中</span>'
                        } else if (res.report.state === '审核完成') {
                            return '<span style="color: green">审核完成</span>'
                        }
                    }
                }
            }
            , {
                field: 'state1', title: '是否通过', align: 'center', templet: function (res) {
                    if (res.report === null) {
                        return '<span class="layui-badge layui-bg-red">待提交</span>'
                    } else {
                        if (res.report.isPass === null || res.report.isPass === "") {
                            return '<span  class="layui-badge layui-bg-orange">审核中</span>'
                        } else if (res.report.isPass === '通过') {
                            return '<span class="layui-badge layui-bg-green">通过</span>'
                        } else if (res.report.isPass === '不通过') {
                            return '<span class="layui-badge " style="background-color: gray">不通过</span>'
                        }
                    }
                }
            }
            , {fixed: 'right', title: '课题详情', toolbar: '#title-tool', width: 90}
            , {fixed: 'right', title: '操作', toolbar: '#paper-info-tool', width: 250}
        ]]
        , text: {
            none: '<div class="layui-anim layui-anim-scaleSpring"  style="margin-top: 150px"><i class="layui-icon"  style="color: #009f95;font-size: 150px;border-bottom: #009f95 solid 2px;padding:15px;margin-top: 50px" >&#xe664;</i><br>' +
                '<br><br><br><br><div class="layui-text" style="font-size: 25px;margin-top: 25px;color: #009f95">好像没有没找到数据呢</div></div>'
            ,
            error: '<div style="margin-top: 150px"><i class="layui-icon"  style="color: #009f95;font-size: 150px;border-bottom: #009f95 solid 2px;padding:15px;margin-top: 50px" >&#xe664;</i><br>' +
                '<br><div class="layui-text" style="font-size: 25px;margin-top: 25px;color: #009f95">好像没有出错了呢</div></div>'
        }
    });
    //监听行工具事件
    table.on('tool(paper-info)', function (obj) {
        let data = obj.data;
        if (obj.event === 'taskDetail') {
            layer.open({
                type: 1
                , offset: 50
                , shade: [0.3, '#000']
                , shadeClose: true
                , skin: 'layui-layer-rim'
                , area: ['740px', '600px']
                , content: $("#task-detail")
                , title: '学生课题详情内容'
                , success: function (layerObj) {
                    $(".layui-layer-shade").appendTo(layerObj.parent());
                    /*设置回显数据*/
                    setTaskDetail(data);
                }
                , end: function () {
                    $("#task-detail").css("display", 'none');
                }
            });
        } else if (obj.event === 'edit') {
            if (data.state !== "开题报告") {
                layer.msg("未到该阶段，暂无法编辑");
                return false;
            } else if (data.report === null || data.report.isPass === "不通过") {
                let page = layer.open({
                    type: 1
                    , offset: 10
                    , area: [900, 600]
                    , content: $("#headline-edit-box")
                    , success: function () {
                        //数据回显
                        setMsg1(data);
                    }
                    , end: function () {
                        $("#headline-edit-box").css("display", 'none');
                    }
                });
            } else if (data.report.state === "审核中" || data.report.isPass === "通过") {
                layer.msg("已提交不可修改");
                return false;
            }

        } else if (obj.event === 'query') {
            if (data.report === null) {
                layer.msg("暂无内容，无法查看");
            } else {
                layer.open({
                    type: 1
                    , offset: 50
                    , shade: [0.3, '#000']
                    , shadeClose: true
                    , skin: 'layui-layer-rim'
                    , area: ['900px', '600px']
                    , content: $("#detail-report")
                    , title: '开题报告详情内容'
                    , success: function (layerObj) {
                        $(".layui-layer-shade").appendTo(layerObj.parent());
                        /*设置回显数据*/
                        setMsg(data);

                    }
                    , end: function () {
                        $("#detail-report").css("display", 'none');
                    }
                });
            }
        } else if (obj.event === 'addFile') {
            if (data.state !== "开题报告") {
                layer.msg("未到该阶段，无法提交");
                return false;
            } else if (data.report === null) {
                layer.msg("你还为提交开题报告，无法上传附件");
                return false;
            } else if (data.report.state === "审核完成") {
                layer.msg("你的开题报告已经审核完成，无法上传附件");
                return false;
            }
            reportId = data.report.reportId;
            SNO = data.sno;
            layer.open({
                type: 1
                , offset: 100
                , area: [350, 250]
                , content: $("#addFileBox")
                , success: function () {
                }
                , end: function () {
                    $("#addFileBox").css("display", 'none');
                }
            });
        }
    });

    //监听提交
    form.on('submit(save-and-submit)', function (data) {
        layer.confirm('确认提交？', function () {
            let reportData = JSON.stringify(data.field);
            let loadPage = layui.layer.load(0, {shade: [0.5, '#fff']});
            $.ajax({
                url: "/submitReport",
                type: 'post',
                data: {
                    taskData: reportData, userName: sno
                },
                dataType: 'json',
                success: function (data) {  //调用接口成功
                    if (data === true || data === 'true') {
                        layer.close(loadPage);
                        layer.closeAll('page');
                        layui.layer.msg('提交成功！', {offset: '300px', time: 2500, anim: 0});
                        table.reload('paper-info', {
                            where: {userName: sno, state: "开题报告", type: 1}
                        });
                    } else {
                        layui.layer.close(loadPage);
                        layui.layer.alert('提交失败！');
                    }
                },
                error: function () {  //接口错误
                    layui.layer.close(loadPage);
                    layui.layer.alert('服务器出错啦,请稍后再试！');
                }
            });
        });
        return false;//阻止表单跳转。如果需要表单跳转，去掉这段即可。
    });
    /*审核附件上传*/
    upload.render({
        elem: '#test-upload-change'
        , url: '/uploadFile'
        , auto: false
        , field: 'file'
        , data: { //上传的额外参数
            SNO: function () {
                return SNO;
            },
            savePath: 'student/report',
            fileName: function () {
                return SNO + ".doc";
            },
            type: 1,
            id: function () {
                return reportId;
            },
            state: '开题报告'
        }
        , size: 0 // 单位 KB 0（即不限制）
        , exts: "doc|docx"
        /*, accept: 'file'*/
        // ,acceptMime:'' 规定打开文件选择框时，筛选出的文件类型
        , before: function (obj) {
            obj.preview(function (index, file, result) {
                //obj.resetFile(index, file, '重新命名的文件.jpg'); //重命名文件名，layui 2.3.0 开始新增
                let fileName = SNO + ".doc";
                obj.resetFile(index, file, fileName);
            });
        }
        , bindAction: '#test-upload-change-action'
        , done: function (res, index, upload) {
            console.log(res);
            //假设code=0代表上传成功
            layer.msg(res.msg);
        }
        , error: function () {
            //请求异常回调
            layer.msg('文件上传失败');
        }
    });


    //设置课题详情
    function setTaskDetail(data) {
        $("#task-tno").html(data.title1.tno);
        $("#task-sno").html(data.sno);
        $("#task-sname").html(data.sname);
        $("#task-from").html(data.title1.from);
        $("#task-id").html(data.title1.xtId);
        $("#task-title").html(data.title);
        $("#task-category").html(data.title1.categoty);
        $("#task-addtime").html(data.title1.addtime);
        $("#task-nature").html(data.title1.nature);
        $("#task-major").html(data.title1.majorName);
        $("#task-tname").html(data.title1.tName);
        $("#task-state").html(data.title1.state);
        $("#task-intr").html(data.title1.intr);
        $("#task-college").html(data.title1.collegeName);
    }

    //设置开题报告详情
    function setMsg(data) {
        //基本信息
        $("#sName").html(data.sname);
        $("#sNO").html(data.sno);
        $("#major").html(data.title1.majorName);
        $("#title").html(data.title);
        $("#state").html(data.report.state);
        $("#isPass").html(data.report.isPass);
        $("#opinion").html(data.report.opinion);

        $.ajax({
            url: "/getReportDetail",
            type: 'post',
            data: {
                reportId: data.report.reportId
            },
            dataType: 'json',
            success: function (data) {  //调用接口成功
                $("#sense").html(data.sence); //选题的依据及意义
                $("#trend").html(data.develop);//国内外研究现状及发展趋势(含文献综述)
                $("#report").html(data.content);//本课题的研究报告
                $("#scheme").html(data.scheme);//本课题的研究方案
                $("#aim").html(data.aim);//研究目标、主要特色及工作进度
                $("#literature").html(data.datum);//参考文献

                if (data.sFileName === null || data.sFileName === '') {
                    $("#stuFile").html('暂学生无附件');
                } else {
                    let sFile = '<div class="layui-upload">' +
                        '<span> ' + data.sFileName + '</span>   ' +
                        '   <div class="layui-btn-group">' +
                        '       <a  class="layui-btn layui-btn-normal" ' +
                        '           href="javascript:POBrowser.openWindowModeless(\'../Word.jsp?fileName=' + data.sFileName + '&url=' + data.sFileUrl + '&type=2\', \'width=1200px;height=800px;\');">' +
                        '           <i class="layui-icon layui-icon-link"></i>预览' +
                        '       </a>' +
                        '       <a  class="layui-btn" href="/downloadFile?filename=' + data.sFileName + '&url=' + data.sFileUrl + '"><i class="layui-icon layui-icon-upload"></i>下载</a>' +
                        '    </div>' +
                        '</div>';
                    $("#stuFile").html(sFile);
                }

                if (data.tFileName === null || data.tFileName === '') {
                    $("#tFile").html('暂无老师附件');
                } else {
                    let tFile = '<div class="layui-upload">' +
                        '  <span>' + data.tFileName + ' </span>   ' +
                        '     <div class="layui-btn-group">' +
                        '           <a class="layui-btn layui-btn-normal" ' +
                        '           href="javascript:POBrowser.openWindowModeless(\'../Word.jsp?fileName=' + data.tFileName + '&url=' + data.tFileUrl + '&type=2\', \'width=1200px;height=800px;\');">' +
                        '           <i class="layui-icon layui-icon-link"></i>预览' +
                        '           </a>' +
                        '     <a class="layui-btn" href="/downloadFile?filename=' + data.tFileName + '&url=' + data.tFileUrl + '"><i class="layui-icon layui-icon-upload"></i>下载</a>' +
                        '   </div>' +
                        '</div>';
                    $("#tFile").html(tFile);
                }

            },
        });
    }

    //设置编辑开题报告回显
    function setMsg1(data) {

        //基本信息
        $("#sName1").val(data.sname);
        $("#sNO1").val(data.sno);
        $("#major1").val(data.title1.majorName);
        $("#title1").val(data.title);
        $("#collegeName").val(data.cid);
        $("#tno").val(data.title1.tno);
        if (data.report != null) {
            $.ajax({
                url: "/getReportDetail",
                type: 'post',
                data: {
                    reportId: data.report.reportId
                },
                dataType: 'json',
                success: function (data) {  //调用接口成功
                    $("#sense1").val(data.sence); //选题的依据及意义
                    $("#trend1").val(data.develop);//国内外研究现状及发展趋势(含文献综述)
                    $("#report1").val(data.content);//本课题的研究报告
                    $("#scheme1").val(data.scheme);//本课题的研究方案
                    $("#aim1").val(data.aim);//研究目标、主要特色及工作进度
                    $("#literature1").val(data.datum);//参考文献
                },
            });
        }

    }
});